#!/bin/bash
x=$(awk '/^[a-zA-Z0-9]/&&!/已创建/{print NR}' user.txt)
if [ -z "$x" ];then
    echo "没有新用户需要创建"
    column -t user.txt  #排序对齐
    exit
fi
for i in $x  #使用循环，分别处理刚才得到的行号
do
    pass=$(tr -cd '_a-zA-Z0-9' < /dev/urandom | head -c 10)  #创建随机密码
    sed -i "${i}s/$/\t$pass/"  user.txt  #在不同行的用户名后面添加密码
    read name pass << EOF  #将文档中用户名和密码分别赋值给name与pass
    $(sed -n "${i}p" user.txt)  #获取命令执行结果
EOF  #这里的EOF代表到此为止，将上一个EOF与这个EOF之间的内容输入重定向给read
    useradd $name
    echo $pass | passwd --stdin $name
    sed -i "${i}s/$/ 已创建/"  user.txt  #添加“已创建”字样
done
column -t user.txt